<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Abstraction Layer (HAL)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="logo.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Hardware Abstraction Layer (HAL)</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__group__hal__interconnect.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">API Reference</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">Interconnect (Internal Digital Routing)<div class="ingroups"><a class="el" href="group__group__hal.html">HAL Drivers</a></div></div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p >High level interface to the Infineon digital routing. </p>
<h1><a class="anchor" id="subsection_interconnect_features"></a>
Features</h1>
<p >Facilities for runtime manipulation of the on chip routing. The following types of connections are supported:</p><ul>
<li>Connection from a peripheral to a pin. (A dedicated connection must exist between the pin and the peripheral; see the device datasheet for more details)</li>
<li>Connecting two peripherals in hardware using the on-chip trigger signaling</li>
</ul>
<h1><a class="anchor" id="subsection_interconnect_quickstart"></a>
Quick Start</h1>
<ul>
<li><a class="el" href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">cyhal_connect_pin</a> can be used to connect a pin to a peripheral.(A dedicated connection must exist between the pin and the peripheral; see the device datasheet for more details)</li>
<li><a class="el" href="group__group__hal__interconnect.html#ga62898739384ebb41a8b3e2c4d491a0cc">cyhal_disconnect_pin</a> can be used to disconnect a pin from a peripheral. The drive mode will be reset to High-Z after disconnecting</li>
</ul>
<h1><a class="anchor" id="section_interconnect_snippets"></a>
Code Snippets</h1>
<h2><a class="anchor" id="subsection_interconnect_snippet1"></a>
Snippet 1: Connecting a pin to TCPWM block</h2>
<p >The following code snippet demonstrates connecting a GPIO pin to an active TCPWM block on a device using the <a class="el" href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">cyhal_connect_pin</a>. It is assumed that the TCPWM is already configured and active.<br  />
 </p><div class="fragment"><div class="line"> </div>
<div class="line">    <span class="comment">// Find out the resource block that connects the specified pins from the provided resource pin</span></div>
<div class="line">    <span class="comment">// mapping table cyhal_pin_map_tcpwm_line. This example connects the pin to the TCPWM line pin</span></div>
<div class="line">    <span class="keyword">const</span> <a class="code hl_struct" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#structcyhal__resource__pin__mapping__t">cyhal_resource_pin_mapping_t</a>* map =</div>
<div class="line">        _CYHAL_UTILS_GET_RESOURCE(<a class="code hl_enumvalue" href="group__group__hal__impl__pin__package__psoc6__01__124__bga.html#gga07a8171f98ca709c496f6054afa5e568aa1814d6db2865c42fb3c7fc7688ab5c5">P2_4</a>, <a class="code hl_variable" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga3c9ce6350bc5c02bb97df5040ca8b6e6">cyhal_pin_map_tcpwm_line</a>);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Obtain the GPIO pin resource</span></div>
<div class="line">    <a class="code hl_struct" href="group__group__hal__impl__hw__types.html#structcyhal__resource__inst__t">cyhal_resource_inst_t</a> pin_rsc = _cyhal_utils_get_gpio_resource(<a class="code hl_enumvalue" href="group__group__hal__impl__pin__package__psoc6__01__124__bga.html#gga07a8171f98ca709c496f6054afa5e568aa1814d6db2865c42fb3c7fc7688ab5c5">P2_4</a>);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Reserve the resource in hardware manager to prevent other HAL blocks from using it</span></div>
<div class="line">    <a class="code hl_typedef" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> status = <a class="code hl_function" href="group__group__hal__hwmgr.html#ga33e7c9bb9beaedeb87825dadf604a0b9">cyhal_hwmgr_reserve</a>(&amp;pin_rsc);</div>
<div class="line">    <span class="keywordflow">if</span> (<a class="code hl_define" href="group__group__result.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a> == status)</div>
<div class="line">    {</div>
<div class="line">        <span class="comment">// The resource is free, connect it to the block</span></div>
<div class="line">        status = <a class="code hl_function" href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">cyhal_connect_pin</a>(map, <a class="code hl_enumvalue" href="group__group__hal__gpio.html#gga2eb76143375648febb0ef73f00a681b2a697e0520cb1b71b748bb76eaafb3ad1b">CYHAL_GPIO_DRIVE_STRONG</a>);</div>
<div class="line">        <span class="keywordflow">if</span> (<a class="code hl_define" href="group__group__result.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a> != status)</div>
<div class="line">        {</div>
<div class="line">            <a class="code hl_function" href="group__group__hal__hwmgr.html#gaa1979bd596d90251c7b861a7e94b884f">cyhal_hwmgr_free</a>(&amp;pin_rsc);</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line"> </div>
<div class="ttc" id="agroup__group__hal__gpio_html_gga2eb76143375648febb0ef73f00a681b2a697e0520cb1b71b748bb76eaafb3ad1b"><div class="ttname"><a href="group__group__hal__gpio.html#gga2eb76143375648febb0ef73f00a681b2a697e0520cb1b71b748bb76eaafb3ad1b">CYHAL_GPIO_DRIVE_STRONG</a></div><div class="ttdeci">@ CYHAL_GPIO_DRIVE_STRONG</div><div class="ttdoc">Strong output.</div><div class="ttdef"><b>Definition:</b> cyhal_gpio.h:158</div></div>
<div class="ttc" id="agroup__group__hal__hwmgr_html_ga33e7c9bb9beaedeb87825dadf604a0b9"><div class="ttname"><a href="group__group__hal__hwmgr.html#ga33e7c9bb9beaedeb87825dadf604a0b9">cyhal_hwmgr_reserve</a></div><div class="ttdeci">cy_rslt_t cyhal_hwmgr_reserve(const cyhal_resource_inst_t *obj)</div><div class="ttdoc">Reserve the specified resource.</div><div class="ttdef"><b>Definition:</b> cyhal_hwmgr.c:185</div></div>
<div class="ttc" id="agroup__group__hal__hwmgr_html_gaa1979bd596d90251c7b861a7e94b884f"><div class="ttname"><a href="group__group__hal__hwmgr.html#gaa1979bd596d90251c7b861a7e94b884f">cyhal_hwmgr_free</a></div><div class="ttdeci">void cyhal_hwmgr_free(const cyhal_resource_inst_t *obj)</div><div class="ttdoc">Free the specified resource to allow it to be reused.</div><div class="ttdef"><b>Definition:</b> cyhal_hwmgr.c:204</div></div>
<div class="ttc" id="agroup__group__hal__impl__hw__types_html_structcyhal__resource__inst__t"><div class="ttname"><a href="group__group__hal__impl__hw__types.html#structcyhal__resource__inst__t">cyhal_resource_inst_t</a></div><div class="ttdoc">Represents a particular instance of a resource on the chip.</div><div class="ttdef"><b>Definition:</b> cyhal_hw_resources.h:589</div></div>
<div class="ttc" id="agroup__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble_html_ga3c9ce6350bc5c02bb97df5040ca8b6e6"><div class="ttname"><a href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga3c9ce6350bc5c02bb97df5040ca8b6e6">cyhal_pin_map_tcpwm_line</a></div><div class="ttdeci">const cyhal_resource_pin_mapping_t cyhal_pin_map_tcpwm_line[68]</div><div class="ttdoc">List of valid pin to peripheral connections for the tcpwm_line signal.</div></div>
<div class="ttc" id="agroup__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble_html_structcyhal__resource__pin__mapping__t"><div class="ttname"><a href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#structcyhal__resource__pin__mapping__t">cyhal_resource_pin_mapping_t</a></div><div class="ttdoc">Represents an association between a pin and a resource.</div><div class="ttdef"><b>Definition:</b> cyhal_psoc6_01_104_m_csp_ble.h:143</div></div>
<div class="ttc" id="agroup__group__hal__impl__pin__package__psoc6__01__124__bga_html_gga07a8171f98ca709c496f6054afa5e568aa1814d6db2865c42fb3c7fc7688ab5c5"><div class="ttname"><a href="group__group__hal__impl__pin__package__psoc6__01__124__bga.html#gga07a8171f98ca709c496f6054afa5e568aa1814d6db2865c42fb3c7fc7688ab5c5">P2_4</a></div><div class="ttdeci">@ P2_4</div><div class="ttdoc">Port 2 Pin 4.</div><div class="ttdef"><b>Definition:</b> cyhal_psoc6_01_124_bga.h:73</div></div>
<div class="ttc" id="agroup__group__hal__interconnect_html_gad5e32a80b5f0b30bcc5385d51a855589"><div class="ttname"><a href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">cyhal_connect_pin</a></div><div class="ttdeci">cy_rslt_t cyhal_connect_pin(const cyhal_resource_pin_mapping_t *pin_connection, uint8_t drive_mode)</div><div class="ttdoc">Connect a pin to a peripheral terminal.</div><div class="ttdef"><b>Definition:</b> cyhal_interconnect.c:502</div></div>
<div class="ttc" id="agroup__group__result_html_gaca79700fcc701534ce61778a9bcf57d1"><div class="ttname"><a href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a></div><div class="ttdeci">uint32_t cy_rslt_t</div><div class="ttdoc">Provides the result of an operation as a structured bitfield.</div><div class="ttdef"><b>Definition:</b> cy_result.h:438</div></div>
<div class="ttc" id="agroup__group__result_html_gaf58fac450d9fff4472f03ad68f6e546e"><div class="ttname"><a href="group__group__result.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a></div><div class="ttdeci">#define CY_RSLT_SUCCESS</div><div class="ttdoc">cy_rslt_t return value indicating success</div><div class="ttdef"><b>Definition:</b> cy_result.h:465</div></div>
</div><!-- fragment --><h2><a class="anchor" id="subsection_interconnect_snippet2"></a>
Snippet 2: Connecting a Timer output signal to a DMA input signal</h2>
<p >The following code snippet demonstrates configuring and connecting a Timer which will overflow every 2 seconds and, in doing so, trigger a DMA channel start. </p><div class="fragment"><div class="line">    <a class="code hl_enumeration" href="group__group__hal__impl__triggers__psoc6__01.html#ga96236d1368f920d28af90262e8b57046">cyhal_source_t</a> timer_source;</div>
<div class="line">    <a class="code hl_struct" href="group__group__hal__impl__hw__types.html#structcyhal__dma__t">cyhal_dma_t</a>    dma;</div>
<div class="line">    <a class="code hl_struct" href="group__group__hal__impl__hw__types.html#structcyhal__timer__t">cyhal_timer_t</a>  timer;</div>
<div class="line"> </div>
<div class="line">    uint32_t src_arr[] = { 100, 200 };</div>
<div class="line">    uint32_t dst_arr[] = { 0, 0 };</div>
<div class="line"> </div>
<div class="line">    <span class="keyword">const</span> <a class="code hl_struct" href="group__group__hal__timer.html#structcyhal__timer__cfg__t">cyhal_timer_cfg_t</a> timer_cfg =</div>
<div class="line">    {</div>
<div class="line">        .<a class="code hl_variable" href="group__group__hal__timer.html#a2fb1a2da36b09c9a1febca770afe3190">compare_value</a> = 0,</div>
<div class="line">        .period        = 20000,</div>
<div class="line">        .direction     = <a class="code hl_enumvalue" href="group__group__hal__timer.html#ggaeb28a1b2d8914e9ad63bb0a68c321ff6a1f50f295ead6dbdb36edefc03a183810">CYHAL_TIMER_DIR_UP</a>,</div>
<div class="line">        .is_compare    = <span class="keyword">false</span>,</div>
<div class="line">        .is_continuous = <span class="keyword">true</span>,</div>
<div class="line">        .value         = 0</div>
<div class="line">    };</div>
<div class="line"> </div>
<div class="line">    <span class="keyword">const</span> <a class="code hl_struct" href="group__group__hal__dma.html#structcyhal__dma__cfg__t">cyhal_dma_cfg_t</a> dma_cfg =</div>
<div class="line">    {</div>
<div class="line">        .<a class="code hl_variable" href="group__group__hal__dma.html#addcfd22935f15ed7fd86990afb2d8fe5">src_addr</a>       = (uint32_t)src_arr,</div>
<div class="line">        .src_increment  = 1,</div>
<div class="line">        .dst_addr       = (uint32_t)dst_arr,</div>
<div class="line">        .dst_increment  = 1,</div>
<div class="line">        .transfer_width = 32,</div>
<div class="line">        .length         = 2,</div>
<div class="line">        .burst_size     = 0,</div>
<div class="line">        .action         = <a class="code hl_enumvalue" href="group__group__hal__dma.html#gga05291825b0a7c7b9a92373ec53342b7aac422419b0c70b168a56a7bedc2bc2dad">CYHAL_DMA_TRANSFER_FULL</a>,</div>
<div class="line">    };</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Configure simple dma transfer from src_arr to dst_arr</span></div>
<div class="line">    <a class="code hl_define" href="group__group__hal__dma.html#gab9c200507a8ee87b894150416e4f5dd1">cyhal_dma_init</a>(&amp;dma, <a class="code hl_define" href="group__group__hal__impl__dma.html#ga81946da56dd6ba8afd28f6056b1d779a">CYHAL_DMA_PRIORITY_DEFAULT</a>, <a class="code hl_enumvalue" href="group__group__hal__dma.html#gga430c1e3ddedade3b6f7ef1f8532e665ba86dedc0ee3d9bf091e9f936040e2066a">CYHAL_DMA_DIRECTION_MEM2MEM</a>);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__dma.html#gad39f32ac4fada8bc9e757df0a22fcce4">cyhal_dma_configure</a>(&amp;dma, &amp;dma_cfg);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Setup timer to run continuously, overflowing every 2 seconds</span></div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#gaa8ca8e199bc9848f8729ff78953bb0fa">cyhal_timer_init</a>(&amp;timer, <a class="code hl_enumvalue" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#gga707195ce0627016bf371643bdd9caa51a3dbd1016ea99d087d747530418b89a01">NC</a>, NULL);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#ga03e9a7839ffd4e8cad90f97fab176813">cyhal_timer_configure</a>(&amp;timer, &amp;timer_cfg);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#ga38ed4c91e655b8b4f5e446c63327ffe5">cyhal_timer_set_frequency</a>(&amp;timer, 10000);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Connect timer overflow trigger to DMA start</span></div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#ga0e7450df4a250d811d1ce60cb69285f8">cyhal_timer_enable_output</a>(&amp;timer, <a class="code hl_enumvalue" href="group__group__hal__timer.html#gga3b82fcbb7e540b55f1923f0cc4c77c30a46034ce48203bb1afe267c91a0f73e6e">CYHAL_TIMER_OUTPUT_OVERFLOW</a>, &amp;timer_source);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__dma.html#ga2933aee1aa2f446f6aedf86ffee28040">cyhal_dma_connect_digital</a>(&amp;dma, timer_source, <a class="code hl_enumvalue" href="group__group__hal__dma.html#gga5d4f22832c99a570fc99e9f3e64e46c0a97c5de1470fcdfd8c5c863ad8768bdd8">CYHAL_DMA_INPUT_TRIGGER_ALL_ELEMENTS</a>);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Once timer is started, a DMA transfer will be triggered every 2 seconds (when the timer</span></div>
<div class="line">    <span class="comment">// overflows) until the connection is disabled.</span></div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#gaff09b3ffee75893da00d0a7dae2d9cb2">cyhal_timer_start</a>(&amp;timer);</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Disable the connection</span></div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#ga5f81dff94142cbb1e2fa28506bd00491">cyhal_timer_disable_output</a>(&amp;timer, <a class="code hl_enumvalue" href="group__group__hal__timer.html#gga3b82fcbb7e540b55f1923f0cc4c77c30a46034ce48203bb1afe267c91a0f73e6e">CYHAL_TIMER_OUTPUT_OVERFLOW</a>);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__dma.html#gaae942b5203638d1580b23e826bb04d53">cyhal_dma_disconnect_digital</a>(&amp;dma, timer_source, <a class="code hl_enumvalue" href="group__group__hal__dma.html#gga5d4f22832c99a570fc99e9f3e64e46c0a97c5de1470fcdfd8c5c863ad8768bdd8">CYHAL_DMA_INPUT_TRIGGER_ALL_ELEMENTS</a>);</div>
<div class="line"> </div>
<div class="line">    <a class="code hl_function" href="group__group__hal__timer.html#ga94944664f47b8ff7c093719116b35cdc">cyhal_timer_free</a>(&amp;timer);</div>
<div class="line">    <a class="code hl_function" href="group__group__hal__dma.html#ga8c1bf16caa5d53cb129e5544da1c8b21">cyhal_dma_free</a>(&amp;dma);</div>
<div class="line"> </div>
<div class="ttc" id="agroup__group__hal__dma_html_addcfd22935f15ed7fd86990afb2d8fe5"><div class="ttname"><a href="group__group__hal__dma.html#addcfd22935f15ed7fd86990afb2d8fe5">cyhal_dma_cfg_t::src_addr</a></div><div class="ttdeci">uint32_t src_addr</div><div class="ttdoc">Source address. Some devices can apply special requirements for user data arrays. Please refer to imp...</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:265</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_ga2933aee1aa2f446f6aedf86ffee28040"><div class="ttname"><a href="group__group__hal__dma.html#ga2933aee1aa2f446f6aedf86ffee28040">cyhal_dma_connect_digital</a></div><div class="ttdeci">cy_rslt_t cyhal_dma_connect_digital(cyhal_dma_t *obj, cyhal_source_t source, cyhal_dma_input_t input)</div><div class="ttdoc">Connects a source signal and enables the specified input to the DMA channel.</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_ga8c1bf16caa5d53cb129e5544da1c8b21"><div class="ttname"><a href="group__group__hal__dma.html#ga8c1bf16caa5d53cb129e5544da1c8b21">cyhal_dma_free</a></div><div class="ttdeci">void cyhal_dma_free(cyhal_dma_t *obj)</div><div class="ttdoc">Free the DMA object.</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gaae942b5203638d1580b23e826bb04d53"><div class="ttname"><a href="group__group__hal__dma.html#gaae942b5203638d1580b23e826bb04d53">cyhal_dma_disconnect_digital</a></div><div class="ttdeci">cy_rslt_t cyhal_dma_disconnect_digital(cyhal_dma_t *obj, cyhal_source_t source, cyhal_dma_input_t input)</div><div class="ttdoc">Disconnects a source signal and disables the specified input to the DMA channel.</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gab9c200507a8ee87b894150416e4f5dd1"><div class="ttname"><a href="group__group__hal__dma.html#gab9c200507a8ee87b894150416e4f5dd1">cyhal_dma_init</a></div><div class="ttdeci">#define cyhal_dma_init(obj, priority, direction)</div><div class="ttdoc">Initialize the DMA peripheral.</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:330</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gad39f32ac4fada8bc9e757df0a22fcce4"><div class="ttname"><a href="group__group__hal__dma.html#gad39f32ac4fada8bc9e757df0a22fcce4">cyhal_dma_configure</a></div><div class="ttdeci">cy_rslt_t cyhal_dma_configure(cyhal_dma_t *obj, const cyhal_dma_cfg_t *cfg)</div><div class="ttdoc">Setup the DMA channel behavior.</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gga05291825b0a7c7b9a92373ec53342b7aac422419b0c70b168a56a7bedc2bc2dad"><div class="ttname"><a href="group__group__hal__dma.html#gga05291825b0a7c7b9a92373ec53342b7aac422419b0c70b168a56a7bedc2bc2dad">CYHAL_DMA_TRANSFER_FULL</a></div><div class="ttdeci">@ CYHAL_DMA_TRANSFER_FULL</div><div class="ttdoc">All bursts are triggered and a single CYHAL_DMA_TRANSFER_COMPLETE will occur at the end.</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:251</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gga430c1e3ddedade3b6f7ef1f8532e665ba86dedc0ee3d9bf091e9f936040e2066a"><div class="ttname"><a href="group__group__hal__dma.html#gga430c1e3ddedade3b6f7ef1f8532e665ba86dedc0ee3d9bf091e9f936040e2066a">CYHAL_DMA_DIRECTION_MEM2MEM</a></div><div class="ttdeci">@ CYHAL_DMA_DIRECTION_MEM2MEM</div><div class="ttdoc">Memory to memory.</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:184</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_gga5d4f22832c99a570fc99e9f3e64e46c0a97c5de1470fcdfd8c5c863ad8768bdd8"><div class="ttname"><a href="group__group__hal__dma.html#gga5d4f22832c99a570fc99e9f3e64e46c0a97c5de1470fcdfd8c5c863ad8768bdd8">CYHAL_DMA_INPUT_TRIGGER_ALL_ELEMENTS</a></div><div class="ttdeci">@ CYHAL_DMA_INPUT_TRIGGER_ALL_ELEMENTS</div><div class="ttdoc">Transfer all elements when an input signal is received.</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:215</div></div>
<div class="ttc" id="agroup__group__hal__dma_html_structcyhal__dma__cfg__t"><div class="ttname"><a href="group__group__hal__dma.html#structcyhal__dma__cfg__t">cyhal_dma_cfg_t</a></div><div class="ttdoc">Configuration of a DMA channel.</div><div class="ttdef"><b>Definition:</b> cyhal_dma.h:264</div></div>
<div class="ttc" id="agroup__group__hal__impl__dma_html_ga81946da56dd6ba8afd28f6056b1d779a"><div class="ttname"><a href="group__group__hal__impl__dma.html#ga81946da56dd6ba8afd28f6056b1d779a">CYHAL_DMA_PRIORITY_DEFAULT</a></div><div class="ttdeci">#define CYHAL_DMA_PRIORITY_DEFAULT</div><div class="ttdoc">Default DMA channel priority.</div><div class="ttdef"><b>Definition:</b> cyhal_dma_impl.h:66</div></div>
<div class="ttc" id="agroup__group__hal__impl__hw__types_html_structcyhal__dma__t"><div class="ttname"><a href="group__group__hal__impl__hw__types.html#structcyhal__dma__t">cyhal_dma_t</a></div><div class="ttdoc">DMA object.</div><div class="ttdef"><b>Definition:</b> cyhal_hw_types.h:211</div></div>
<div class="ttc" id="agroup__group__hal__impl__hw__types_html_structcyhal__timer__t"><div class="ttname"><a href="group__group__hal__impl__hw__types.html#structcyhal__timer__t">cyhal_timer_t</a></div><div class="ttdoc">Timer object.</div><div class="ttdef"><b>Definition:</b> cyhal_hw_types.h:1473</div></div>
<div class="ttc" id="agroup__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble_html_gga707195ce0627016bf371643bdd9caa51a3dbd1016ea99d087d747530418b89a01"><div class="ttname"><a href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#gga707195ce0627016bf371643bdd9caa51a3dbd1016ea99d087d747530418b89a01">NC</a></div><div class="ttdeci">@ NC</div><div class="ttdoc">No Connect/Invalid Pin.</div><div class="ttdef"><b>Definition:</b> cyhal_psoc6_01_104_m_csp_ble.h:53</div></div>
<div class="ttc" id="agroup__group__hal__impl__triggers__psoc6__01_html_ga96236d1368f920d28af90262e8b57046"><div class="ttname"><a href="group__group__hal__impl__triggers__psoc6__01.html#ga96236d1368f920d28af90262e8b57046">cyhal_trigger_source_psoc6_01_t</a></div><div class="ttdeci">cyhal_trigger_source_psoc6_01_t</div><div class="ttdoc">Name of each input trigger.</div><div class="ttdef"><b>Definition:</b> cyhal_triggers_psoc6_01.h:355</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_a2fb1a2da36b09c9a1febca770afe3190"><div class="ttname"><a href="group__group__hal__timer.html#a2fb1a2da36b09c9a1febca770afe3190">cyhal_timer_cfg_t::compare_value</a></div><div class="ttdeci">uint32_t compare_value</div><div class="ttdoc">Timer/counter comparison value.</div><div class="ttdef"><b>Definition:</b> cyhal_timer.h:178</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ga03e9a7839ffd4e8cad90f97fab176813"><div class="ttname"><a href="group__group__hal__timer.html#ga03e9a7839ffd4e8cad90f97fab176813">cyhal_timer_configure</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_configure(cyhal_timer_t *obj, const cyhal_timer_cfg_t *cfg)</div><div class="ttdoc">Updates the configuration and counter value of the timer/counter object.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ga0e7450df4a250d811d1ce60cb69285f8"><div class="ttname"><a href="group__group__hal__timer.html#ga0e7450df4a250d811d1ce60cb69285f8">cyhal_timer_enable_output</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_enable_output(cyhal_timer_t *obj, cyhal_timer_output_t signal, cyhal_source_t *source)</div><div class="ttdoc">Enables the specified output signal from a tcpwm that will be triggered when the corresponding event ...</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ga38ed4c91e655b8b4f5e446c63327ffe5"><div class="ttname"><a href="group__group__hal__timer.html#ga38ed4c91e655b8b4f5e446c63327ffe5">cyhal_timer_set_frequency</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_set_frequency(cyhal_timer_t *obj, uint32_t hz)</div><div class="ttdoc">Configures the timer frequency.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ga5f81dff94142cbb1e2fa28506bd00491"><div class="ttname"><a href="group__group__hal__timer.html#ga5f81dff94142cbb1e2fa28506bd00491">cyhal_timer_disable_output</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_disable_output(cyhal_timer_t *obj, cyhal_timer_output_t signal)</div><div class="ttdoc">Disables the specified output signal from a timer.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ga94944664f47b8ff7c093719116b35cdc"><div class="ttname"><a href="group__group__hal__timer.html#ga94944664f47b8ff7c093719116b35cdc">cyhal_timer_free</a></div><div class="ttdeci">void cyhal_timer_free(cyhal_timer_t *obj)</div><div class="ttdoc">Deinitialize the timer/counter object.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_gaa8ca8e199bc9848f8729ff78953bb0fa"><div class="ttname"><a href="group__group__hal__timer.html#gaa8ca8e199bc9848f8729ff78953bb0fa">cyhal_timer_init</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_init(cyhal_timer_t *obj, cyhal_gpio_t pin, const cyhal_clock_t *clk)</div><div class="ttdoc">Initialize the timer/counter peripheral and configure the pin.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_gaff09b3ffee75893da00d0a7dae2d9cb2"><div class="ttname"><a href="group__group__hal__timer.html#gaff09b3ffee75893da00d0a7dae2d9cb2">cyhal_timer_start</a></div><div class="ttdeci">cy_rslt_t cyhal_timer_start(cyhal_timer_t *obj)</div><div class="ttdoc">Starts the timer/counter with the pre-set configuration from cyhal_timer_configure.</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_gga3b82fcbb7e540b55f1923f0cc4c77c30a46034ce48203bb1afe267c91a0f73e6e"><div class="ttname"><a href="group__group__hal__timer.html#gga3b82fcbb7e540b55f1923f0cc4c77c30a46034ce48203bb1afe267c91a0f73e6e">CYHAL_TIMER_OUTPUT_OVERFLOW</a></div><div class="ttdeci">@ CYHAL_TIMER_OUTPUT_OVERFLOW</div><div class="ttdoc">Overflow signal.</div><div class="ttdef"><b>Definition:</b> cyhal_timer.h:156</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_ggaeb28a1b2d8914e9ad63bb0a68c321ff6a1f50f295ead6dbdb36edefc03a183810"><div class="ttname"><a href="group__group__hal__timer.html#ggaeb28a1b2d8914e9ad63bb0a68c321ff6a1f50f295ead6dbdb36edefc03a183810">CYHAL_TIMER_DIR_UP</a></div><div class="ttdeci">@ CYHAL_TIMER_DIR_UP</div><div class="ttdoc">Counts up.</div><div class="ttdef"><b>Definition:</b> cyhal_timer.h:130</div></div>
<div class="ttc" id="agroup__group__hal__timer_html_structcyhal__timer__cfg__t"><div class="ttname"><a href="group__group__hal__timer.html#structcyhal__timer__cfg__t">cyhal_timer_cfg_t</a></div><div class="ttdoc">Describes the current configuration of a timer/counter.</div><div class="ttdef"><b>Definition:</b> cyhal_timer.h:168</div></div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
API Reference</h2></td></tr>
<tr class="memitem:group__group__hal__results__interconnect"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__results__interconnect.html">Interconnect HAL Results</a></td></tr>
<tr class="memdesc:group__group__hal__results__interconnect"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interconnect specific return codes. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad5e32a80b5f0b30bcc5385d51a855589"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">cyhal_connect_pin</a> (const <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#structcyhal__resource__pin__mapping__t">cyhal_resource_pin_mapping_t</a> *pin_connection, uint8_t drive_mode)</td></tr>
<tr class="memdesc:gad5e32a80b5f0b30bcc5385d51a855589"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect a pin to a peripheral terminal.  <a href="group__group__hal__interconnect.html#gad5e32a80b5f0b30bcc5385d51a855589">More...</a><br /></td></tr>
<tr class="separator:gad5e32a80b5f0b30bcc5385d51a855589"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62898739384ebb41a8b3e2c4d491a0cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__interconnect.html#ga62898739384ebb41a8b3e2c4d491a0cc">cyhal_disconnect_pin</a> (<a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> pin)</td></tr>
<tr class="memdesc:ga62898739384ebb41a8b3e2c4d491a0cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect a peripheral from a pin.  <a href="group__group__hal__interconnect.html#ga62898739384ebb41a8b3e2c4d491a0cc">More...</a><br /></td></tr>
<tr class="separator:ga62898739384ebb41a8b3e2c4d491a0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad5e32a80b5f0b30bcc5385d51a855589" name="gad5e32a80b5f0b30bcc5385d51a855589"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad5e32a80b5f0b30bcc5385d51a855589">&#9670;&nbsp;</a></span>cyhal_connect_pin()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_connect_pin </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#structcyhal__resource__pin__mapping__t">cyhal_resource_pin_mapping_t</a> *&#160;</td>
          <td class="paramname"><em>pin_connection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>drive_mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect a pin to a peripheral terminal. </p>
<p >This will route a direct connection from the pin to the peripheral. Any previous direct connection from the pin will be overriden.<br  />
 See <a class="el" href="group__group__hal__interconnect.html#subsection_interconnect_snippet1">Snippet 1: Connecting a pin to TCPWM block</a> </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pin_connection</td><td>The pin and target peripheral terminal to be connected </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">drive_mode</td><td>The drive mode to use for the pin </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the connect request </dd></dl>

</div>
</div>
<a id="ga62898739384ebb41a8b3e2c4d491a0cc" name="ga62898739384ebb41a8b3e2c4d491a0cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62898739384ebb41a8b3e2c4d491a0cc">&#9670;&nbsp;</a></span>cyhal_disconnect_pin()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_disconnect_pin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>pin</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disconnect a peripheral from a pin. </p>
<p >This will also reset the pin's drive mode to High-Z. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>The pin to be disconnected </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the disconnect request </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>Hardware Abstraction Layer (HAL)</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
